package start.spring.basic.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.baidu.fsg.uid.UidGenerator;
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;

/**
 * 
 * ****************************************************************************
 * 基于百度Uid-Generator自定义分布式id生成器
 *
 * @author(作者)：xuyongyun	
 * @date(创建日期)：2021年4月13日
 ******************************************************************************
 */
@Component
public class CustomUidGenerator implements IdentifierGenerator {

	@Autowired
    private UidGenerator cachedUidGenerator;

	/**
	 * 用于mybatis plus获取id
	 *	
	 * @return
	 * @since           1.0
	 */
	@Override
	public Number nextId(Object entity) {
		return cachedUidGenerator.getUID();
	}
	
	/**
	 * 用于jdbctemplete获取id
	 *	
	 * @return
	 * @since           1.0
	 */
	public String nextId() {
		return String.valueOf(cachedUidGenerator.getUID());
	}
	
	/**
	 * 用于jdbctemplete获取id
	 *	
	 * @return
	 * @since           1.0
	 */
	public Long nextNumberId() {
		return cachedUidGenerator.getUID();
	}

}
